import type { Stringifier } from "postcss"

export interface DafaultUser {
    data: User
}

export interface User {
    birthday: string
    coins: number
    contract: null
    elec: { show_info: {} }
    face: string
    face_nft: number
    face_nft_type: number
    fans_badge: boolean
    fans_medal: { show: boolean, wear: boolean, medal: null }
    gaia_data: null
    gaia_res_type: number
    is_followed: boolean
    is_risk: boolean
    is_senior_member: number
    jointime: number
    level: number
    live_room: LiveRoom
    mcn_info: null
    mid: number
    moral: number
    name: string
    nameplate: {
        condition: string
        image: string
        image_small: string
        level: string
        name: string
        nid: number
    }
    official: { role: number, title: string, desc: string, type: number }
    pendant: {
        expire: number
        image: string
        image_enhance: string
        image_enhance_frame: string
        name: string
        pid: number
    }
    profession: { name: string, department: string, title: string, is_show: number }
    rank: number
    school: null
    series: { user_upgrade_status: number, show_upgrade_window: boolean }
    sex: string
    sign: string
    silence: number
    sys_notice: any
    tags: null
    theme: any
    top_photo: string
    user_honour_info: { mid: number, colour: null, tags: Array<any> }
    vip: Vip

}

export interface DafaultStat {
    data: Stat
}

export interface DafaultVlist {
    data: {
        list: {
            vlist: Array<Vlist>
        }
    }
}

export interface Stat {
    black: number
    follower: number
    following: number
    mid: number
    whisper: number
}

export interface Vlist {
    aid: number
    attribute: number
    author: string
    bvid: string
    comment: number
    copyright: string
    created: number
    description: string
    hide_click: boolean
    is_avoided: number
    is_live_playback: number
    is_pay: number
    is_steins_gate: number
    is_union_video: number
    length: string
    meta: null
    mid: number
    pic: string
    play: number
    review: number
    subtitle: string
    title: string
    typeid: number
    video_review: number
}

interface LiveRoom {
    broadcast_type: number
    cover: string
    liveStatus: number
    roomStatus: number
    roomid: number
    roundStatus: number
    title: string
    url: string
    watched_show: {
        icon: string
        icon_location: string
        icon_web: string
        num: number
        switch: boolean
        text_large: string
        text_small: string
    }
}

interface Vip {
    avatar_subscript: number
    avatar_subscript_url: string
    due_date: number
    label: {
        bg_color: string
        bg_style: number
        border_color: string
        img_label_uri_hans: string
        img_label_uri_hans_static: string
        img_label_uri_hant: string
        img_label_uri_hant_static: string
        label_theme: string
        path: string
        text: string
        text_color: string
        use_img_label: boolean
    }
    nickname_color: string
    role: number
    status: number
    theme_type: number
    tv_vip_pay_type: number
    tv_vip_status: number
    type: number
    vip_pay_type: number

}

export interface UserFollow {
    mid: string
    name: string
    face: string
    sign: string
}

export interface UserBrowseData {
    bvid: string
    aid: number | string
    length: number | string
    title: string
    play: number
    video_review: number
    pic: string
}